package com.xl.qa.service;

import com.xl.basic.entity.Result;
import com.xl.basic.entity.SPage;
import com.xl.basic.entity.UserInfo;
import com.xl.dao.domain.XlQuestion;
import com.xl.dao.domain.XlQuestionOrder;
import com.xl.qa.entity.param.*;
import com.xl.qa.entity.result.QuesOrderDetailsResult;
import jakarta.validation.constraints.NotBlank;
import lombok.NonNull;

import java.util.List;

/**
 * @author 钟勇
 * Create in 2024/1/15 15:25
 */
public interface QuestionOrderService {

    /**
     * 回答问卷
     *
     * @param param    param
     * @param operator 找找人
     * @return 问卷id
     */
    Result<String> addQuesOrder(@NonNull AddQuesOrderParam param, UserInfo operator);

    /**
     * 编辑问题回答
     *
     * @param param    param
     * @param operator 操作人
     * @return result
     */
    Result<Object> updQuesAnswer(@NonNull UpdQuesAnswerParam param, UserInfo operator);

    /**
     * 更新订单状态
     * @param param param
     * @param operator 操作人
     * @return result
     */
    Result<Object> updQuesOrderState(@NonNull UpdQuesOrderStateParam param, UserInfo operator);

    /**
     * 获取订单明细
     * @param orderId 订单id
     * @return 订单明细
     */
    Result<QuesOrderDetailsResult> getQuesOrderDetails(@NonNull String orderId);


    /**
     * 查询问卷列表
     *
     * @param param param
     * @return list
     */
    Result<List<QuesOrderDetailsResult>> queryQuesOrderList(@NonNull QueryQuesOrderParam param);

    /**
     * 查询问卷分页
     *
     * @param param param
     * @param sPage 分页
     * @return page
     */
    Result<List<QuesOrderDetailsResult>> queryQuesOrderPage(@NonNull QueryQuesOrderParam param, SPage sPage);
}
